package com.xhwl.logistics.vo.logistics;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xhwl.logistics.entity.approval.ApprovalProgress;
import com.xhwl.logistics.vo.logistics.approval.ApprovalProcessVO;
import com.xhwl.logistics.vo.logistics.approval.ApprovalProgressVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 物流车预约
 * </p>
 *
 * @author lin.yang
 * @since 2023-12-06
 */
@Data
public class VisitorRecordVO implements Serializable {


    @ExcelIgnore
    private Integer id;


    @ExcelProperty(value = "司机姓名")
    @ApiModelProperty(value = "司机姓名")
    private String driverName;

    @ExcelProperty(value = "申请人")
    @ApiModelProperty(value = "发起人")
    private String promoter;


    @ExcelIgnore
    @ApiModelProperty(value = "证件类型（0、身份证  1、驾驶证  2、军官证  3、护照）")
    private Integer cardType;

    @ExcelProperty(value = "证件类型")
    @ApiModelProperty(value = "证件类型名称")
    private String cardTypeText;

    @ExcelProperty(value = "证件号码")
    @ApiModelProperty(value = "身份证号码")
    private String idCard;

    @ExcelProperty(value = "电话")
    @ApiModelProperty(value = "访客电话")
    private String telephone;


    @ExcelIgnore
    @ApiModelProperty(value = "运送物品照片url")
    private List<String> materialPicUrl;

    @ExcelProperty(value = "运送物品说明")
    @ApiModelProperty(value = "运送物品说明")
    private String materialDescription;

    @ExcelIgnore
    @ApiModelProperty(value = "人脸照片地址")
    private List<String> faceUrl;

    @ExcelProperty(value = "车牌号码")
    @ApiModelProperty(value = "车牌号码")
    private String plateNo;

    @ExcelProperty(value = "有效开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "有效时间开始时间")
    private Date availableStartDate;


    @ExcelProperty(value = "有效结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "有效时间结束时间")
    private Date availableEndDate;


    @ExcelIgnore
    @ApiModelProperty(value = "访客状态（0、待审批   1、已到访  2、通过  3、未通过 4、已过期  5、取消 ）")
    private Integer status;

    @ExcelProperty(value = "状态")
    @ApiModelProperty(value = "访客状态中文值")
    private String statusText;

    @ExcelIgnore
    @ApiModelProperty(value = "操作人员账号")
    private String operateUserLoginName;

    @ExcelIgnore
    @ApiModelProperty(value = "操作人员姓名")
    private String operateUserName;


    @ExcelProperty(value = "申请时间")
    @ApiModelProperty(value = "操作时间")
    private Date operateDate;


    @ExcelIgnore
    @ApiModelProperty(value = "关联流程id")
    private Integer flowId;


    @ExcelIgnore
    @ApiModelProperty(value = "流程名称")
    private String flowName;


    @ExcelIgnore
    @ExcelProperty(value = "审批意见")
    @ApiModelProperty(value = "审批意见")
    private String approvalDescription;




    @ExcelIgnore
    @ExcelProperty(value = "审批时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "审批时间")
    private Date approvalDate;

    @ExcelIgnore
    @ApiModelProperty(value = "所对应的流程信息")
    private ApprovalProcessVO approvalProcessVO;

    @ExcelIgnore
    @ApiModelProperty(value = "当前所属进度节点")
    private List<ApprovalProgressVO>currentProgressList;

}
